#include <qpid/messaging/Connection.h>
#include <qpid/messaging/Message.h>
#include <qpid/messaging/Receiver.h>
#include <qpid/messaging/Sender.h>
#include <qpid/messaging/Session.h>
#include <iostream>

using namespace qpid::messaging;
 
int main(int argc, char** argv) {
   std::string broker = argc > 1 ? argv[1] : "localhost:65531";
   std::string address = argc > 2 ? argv[2] : "amq.topic";
   Connection connection(broker);
   try {
      connection.open();
      Session session = connection.createSession();

      // ### Your Code Here ###
      Message message;
      message.setConentType("application/x-protobuf");
      message.setContent("Hello world!");
      Sender sender = session.createSender(address);
      sender.send(message);
      // ### Your Code Here ###

      connection.close();
      return 0;
   } catch(const std::exception& error) {
         std::cerr << error.what() << std::endl;
         connection.close();
         return 1;   
   }
}
